An operating system is software code that provides basic functions allowing a user or users to interact with a computer. For example, an operating system provides the user with commands for opening files, closing files, printing files, displaying data objects on a display screen, as well as many other functions.
In a computer system that is designed to service a single user only, a single copy of software code is required to provide these functions. As the user performs actions requiring operating system intervention, the appropriate section of the operating system code services the user request. In a system that services multiple users, however, it becomes unwieldy to provide a separate copy of the operating system code for each user.
This problem has been addressed in some multi-user operating systems by providing only a single copy of certain segments of the operating system code which are shared among many or all of the users. For example, WINDOWS NT.TM., an operating system produced and sold by Microsoft Corporation of Redmond, Wash., provides only a single copy of the code necessary to implement graphics functions, i.e. display data objects on a display screen. This approach has the drawback of not truly providing multi-user access to graphics functions because multiple user accesses would result in data collisions between individual users' data. Further, even if multiple users could simultaneously perform actions requiring invocation of the graphics code without data collisions, users would experience delays due to code contention.